package cartago.artifacts;

import jason.eis.EISAdapter;

import java.util.*;
import java.util.logging.Logger;

import graph.Edge;
import graph.MarsGraph;
import graph.Node;
import cartago.*;

public class MapMonitor extends Artifact {

	private MarsGraph g;
	
	void init(){
		//### Inizializzo il grafico
		g = MarsGraph.getGraph();
	}
	
	private static int getVertexInt(Object V) {
		String asString = (String)V;
		return Integer.parseInt(asString.substring(6));
	}
	
	/**
	 * Inserisce un arco da V1 a V2
	 * @param V1
	 * @param V2
	 */
	@OPERATION void addEdge(Object V1, Object V2){
		int n1, n2, edge;
		
		//### Ricavo gli id dei vertici
		n1 = getVertexInt(V1);
		n2 = getVertexInt(V2);
		
		//### Calcolo un intero univoco per ciascuna coppia di vertici (indipendentemente dall'ordine)
		edge = (int)(Math.pow(2, n1) + Math.pow(2, n2));
		
		g.insertEdge(n1, n2, edge);
	}
	
}
